home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Champak 146
/
(Vol 146) Jan 07 2012.iso
/
Games
/
scuba.swf
/
scripts
/
frame_18
/
DoAction_2.as
next >
Wrap
Text File
|
2012-01-07
|
7KB
|
245 lines
function fnInitialize()
{
gResumeFrame = null;
gTimeCounter = Number(0);
gScore = Number(0);
gOxygenStatus = FULL_OXYGEN;
gRecruitStatus = "free";
var gSideOfImpact;
var gResetOffset;
var gRecoverTargetY;
var gRecoverTargetX;
gRecruitTilt = "none";
gProdStatus = "not_activated";
allFishies = new Array("fish1","fish2","fish3","fish4","fish5","fish6");
i = 0;
while(i < allFishies.length)
{
set(allFishies[i] + ".status","static");
setProperty(allFishies[i], _X, eval(allFishies[i] + ".vOrigX"));
setProperty(allFishies[i], _Y, eval(allFishies[i] + ".vOrigY"));
setProperty(allFishies[i], _visible, 1);
i++;
}
activeFishies = new Array();
allMines = new Array("mine1","mine2","mine3","mine4");
i = 0;
while(i < allMines.length)
{
set(allMines[i] + ".status","static");
setProperty(allMines[i], _X, eval(allMines[i] + ".vOrigX"));
setProperty(allMines[i], _Y, eval(allMines[i] + ".vOrigY"));
setProperty(allMines[i], _visible, 1);
i++;
}
activeMines = new Array();
setProperty("coral", _X, BG_START_POSITION);
allOxyTanks = new Array("tank1","tank2","tank3","tank4");
i = 0;
while(i < allOxyTanks.length)
{
set(allOxyTanks[i] + ".status","static");
setProperty(allOxyTanks[i], _X, eval(allOxyTanks[i] + ".vOrigX"));
setProperty(allOxyTanks[i], _Y, eval(allOxyTanks[i] + ".vOrigY"));
setProperty(allOxyTanks[i], _visible, 1);
i++;
}
activeOxyTanks = new Array();
oxygenGauge.gotoAndStop("oxy" + String(gOxygenStatus));
skillLevel.gotoAndStop(String(gSkillLevel));
lowOxyWarning.gotoAndStop("base");
setProperty("recruit", _visible, 1);
recruit.gotoAndPlay("enterfromleft");
if(gInitialized == false)
{
gInitialized = true;
}
gJumpLoc = false;
gDifficultyFactorOxy = Number(1);
gDifficultyFactorFish = Number(1);
gDifficultyIncr = Number(0.04);
}
function fnBeginGame()
{
setProperty("recruit", _X, recruit.vOrigX);
setProperty("recruit", _Y, recruit.vOrigY);
recruit.gotoAndPlay("swim");
fnStartScriptClips();
}
function fnStartScriptClips()
{
gInGame = true;
skillLevel.gotoAndStop(String(gSkillLevel));
timer.gotoAndPlay("go");
scrollerClip.gotoAndPlay("go");
mineLauncher.gotoAndPlay("launch");
oxygenLauncher.gotoAndPlay("launch");
fishLauncher.gotoAndPlay("launch");
}
function fnHelp()
{
if(gInGame == true)
{
gJumpLoc = true;
fnPauseGame();
}
else if(endClip._currentframe == 1 || endClip._currentframe == undefined)
{
gResumeFrame = null;
}
else
{
endClip.gotoAndStop("base");
endhelp.gotoAndStop("base");
if(gScore >= 200)
{
gResumeFrame = "passend";
}
else
{
gResumeFrame = "nopassend";
}
}
gotoAndStop(18);
}
function fnResumeGame()
{
gotoAndStop(24);
}
function fnEndGame()
{
gPlayAgain = true;
setProperty("recruit", _visible, 0);
gInGame = false;
gRecruitStatus = "dead";
scrollerClip.gotoAndStop("base");
timer.gotoAndStop("base");
endClip.gotoAndPlay("message");
lowOxyWarning.gotoAndStop("base");
oxygenGauge.gotoAndStop("oxy0");
}
function fnHitWall()
{
recruit.vProdFrame = Number(gRechargeFrame);
if(gHitByFish == true)
{
recruit.vHitByFishFrame = Number(Number(recruit.diver._totalframes - Number(recruit.diver._currentframe)) - Number(1));
}
gRecruitStatus = "hit";
scrollerClip.gotoAndStop("base");
gSideOfImpact = "undetermined";
var vPixelCounter;
var topClearCount = Number(1);
var bottomClearCount = Number(1);
var rightClearCount = Number(1);
var leftClearCount = Number(1);
gResetOffset = 20;
vPixelCounter = 5;
while(vPixelCounter < 31)
{
if(coral.hitTest(Number(recruit._x),Number(Number(recruit._y) - Number(vPixelCounter)),true) == false)
{
topClearCount++;
}
else
{
topClearCount--;
}
if(coral.hitTest(Number(recruit._x),Number(Number(recruit._y) + Number(vPixelCounter)),true) == false)
{
bottomClearCount++;
}
else
{
bottomClearCount--;
}
if(coral.hitTest(Number(Number(recruit._x) + Number(vPixelCounter)),Number(recruit._y),true) == false)
{
rightClearCount++;
}
else
{
rightClearCount--;
}
if(coral.hitTest(Number(Number(recruit._x) - Number(vPixelCounter)),Number(recruit._y),true) == false)
{
leftClearCount++;
}
else
{
leftClearCount--;
}
vPixelCounter++;
}
if(rightClearCount < topClearCount && rightClearCount < bottomClearCount && 0() || 25 < Number(leftClearCount - rightClearCount))
{
gSideOfImpact = "right";
}
else if(bottomClearCount >= topClearCount && rightClearCount >= topClearCount)
{
gSideOfImpact = "top";
}
else
{
gSideOfImpact = "bottom";
}
if(gSideOfImpact == "top")
{
gRecoverTargetY = Number(Number(recruit._y) + Number(gResetOffset));
}
else if(gSideOfImpact == "bottom")
{
gRecoverTargetY = Number(Number(recruit._y) - Number(gResetOffset));
}
else if(gSideOfImpact == "right")
{
if(BG_RIGHT_LIMIT < Number(coral._x + Number(gResetOffset)))
{
gRecoverTargetX = Number(BG_LEFT_LIMIT + Number(Number(coral._x + Number(gResetOffset)) - Number(BG_RIGHT_LIMIT)));
}
else
{
gRecoverTargetX = Number(coral._x + Number(gResetOffset));
}
}
gRecruitStatus = "recovering";
fnRunIntoSomething("WALL");
recruit.gotoAndPlay("hitwall");
}
function fnWallHitDone()
{
gRecruitStatus = "free";
recruit.vProdFrame = gProdRechargeFrame;
recruit.gotoAndPlay("swim");
scrollerClip.gotoAndPlay("go");
}
function fnTakeOxygen()
{
gOxygenStatus = Number(gOxygenStatus + Number(TANK_REFILL));
if(FULL_OXYGEN < gOxygenStatus)
{
gOxygenStatus = FULL_OXYGEN;
}
oxygenGauge.gotoAndStop("oxy" + gOxygenStatus);
}
function fnRunIntoSomething(penalty)
{
gOxygenStatus = Number(gOxygenStatus - Number(eval(penalty + "_PENALTY")));
if(gOxygenStatus < 1)
{
gOxygenStatus = 0;
fnEndGame();
}
oxygenGauge.gotoAndStop("oxy" + gOxygenStatus);
}
function fnCreatureAttack()
{
gHitByFish = true;
fnRunIntoSomething("CREATURE");
recruit.diver.gotoandPlay("hitbyfish");
}
function fnScorePoints()
{
gScore = Number(gScore + Number(eval("POINTS_FOR_MINE_" + String(gSkillLevel))));
}